import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Clase Trampolin representa un trampolin que hace que el mono salte mas.
 * 
 * @author (Programacion Orientada A Objetos - Gonzalez Donat - Neri Andriano) 
 * @version (15/05/12)
 */
public class Portal extends Actor
{
    private Mono mono;  //referencia al mono
    private GoP gana;   //Objeto de tipo GoP, servira para mostrar el mensaje de GANASTE
    
    /**
     * Constructor de la clase Portal
     * @param m Es la referencia del mono que sera asignado a la variable mono
     */
    public Portal(Mono m)
    {
        mono=m;
        gana= new GoP(true);
    }
    
    /**
     * Checa que la interseccion con el mono para finalizar el nivel.
     */
    public void act() 
    {
        Mono aux;
        aux = (Mono)getOneIntersectingObject(Mono.class);
        if(mono==aux)
            this.terminoNivel();
    }
    
    /**
     * Hace los camios de nivel y en caso de terminar el ultimo nivel muestra el mensaje GANASTE y regresa al menu principal.
     */
    public void terminoNivel()
    {
        int aux;
        aux=((Escenario)this.getWorld()).dameNivel();
        if(aux<2)
        {
            
            ((Escenario)this.getWorld()).modificaNivel(aux+1);
            ((Escenario)this.getWorld()).cambiaEscenario(aux+1);
        }
        if(aux==2)
        {
            ((Escenario)this.getWorld()).remueveLamp();
            ((Escenario)this.getWorld()).addObject(gana,400,300);
            Greenfoot.delay(100);
            ((Escenario)this.getWorld()).cambiaEscenario(4);
        }
        
    }
}
